perm filename CNODES[0,BGB] blob sn#206959 filedate 1974-04-23 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00011 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	4.6 CRE NODE FORMATS.
C00006 00003	CRE Node Rellocation Bits.
C00008 00004	1. VECTOR & 2. ARC NODE FORMAT.
C00013 00005	3. POLYGON NODE FORMAT.
C00017 00006	4. SHAPE NODE FORMAT.
C00022 00007	5. LEVEL NODE FORMAT.
C00025 00008	6. IMAGE NODE FORMAT.
C00029 00009	7. FILM NODE FORMAT.
C00032 00010	8. EMPTY NODE FORMAT.
C00035 00011	DATA STRUCTURE: IMAGE ARRAYS.
C00039 ENDMK
C⊗;
4.6 CRE NODE FORMATS.

DATA STRUCTURE: TYPE BITS.

	Each node  has a  word reserved  for a  boolean vector of  36
values,  or bits. The  first eighteen bits  are called  the type bits
and are individually named as follows:

_____________________________________________________________________
 for	0	WESBIT		westward vector.
vectors	1	SOUBIT		southward vector.
 only	2	EASBIT		eastward vector.
	3	NORBIT		northward vector.
_____________________________________________________________________
	4	NFUSE		NTIME polygon fusion.
	5	NFISS		NTIME polygon fission.
 for 	6	NEXCT		NTIME polygon exact match.
polygons
 only 	7	PFUSE		PTIME polygon fusion.
	8	PFISS		PTIME polygon fission.
	9	PEXCT		PTIME polygon exact match.
_____________________________________________________________________
	10	HOLBIT		Hole polygon bit.
modify	11	ARCBIT		Arc vector bit.
_____________________________________________________________________
	12	SBIT		Shape node bit.
	13	VBIT		Vertex node bit.
	14	PBIT		Polygon node bit.
kind
	15	LBIT		Level node bit.
	16	IBIT		Image node bit.
	17	FBIT		Film node bit.
_____________________________________________________________________



	The first four  bits WESBIT, SOUBIT, EASBIT and  NORBIT apply
only  to vectors and indicate  the direction of the  vector. The next
six bits  NFUSE, NFISS, NEXCT,  PFUSE, PFISS,  PEXCT are  set by  the
polygon compare  routine to indicate  the kind of time  mating found;
where  N and  P mean  negative time  or postive time  linkage; fusion
means that the  given polygon  and another polygon  fuse to form  the
time polygon,  two into one; fission means  the given polygon splits,
one into two; and exact means  that the given polygon matchs one  for
one with its time polygon.

	The next  two bits HOLBIT  and ARCBIT  indicate distinguished
polygons  and vectors respectively.  Only one  of the last  six bits:
SBIT,  VBIT, PBIT,  LBIT, IBIT and  FBIT may be on  in a node.  These
bits indicate the node's type.
CRE Node Rellocation Bits.

	The  next  eighteen  bits  are  called  the  reloc  bits  and
indicate whether or  not a link is stored in a particular position of
the node.  The rellocation  bits are  used to  compact  the CRE  node
space for output.

	18	unused
	19	CAR(WORD0)
	20	CDR(WORD0)

	21	unused
	22	CAR(WORD1)
	23	CDR(WORD1)

	24	unused
	25	CAR(WORD3)
	26	CDR(WORD3)

	27	unused
	28	CAR(WORD4)
	29	CDR(WORD4)

	30	unused
	31	CAR(WORD5)
	32	CDR(WORD5)

	33	unused
	34	CAR(WORD6)
	35	CDR(WORD6)

	The CAR of a word is the left half. The  CDR of a word is the
right  half. In  the node  diagrams the rellocation  of each  word is
indicated directly  to  its right  as 0,    1,   2  or 3  meaning  no
rellocation,   left only,   right only,   and rellocate  both halves,
respectively.
1. VECTOR & 2. ARC NODE FORMAT.

	_____________________________________________ 
	word |        CW         |        CCW        |
	  0  |              vector ring              | 3
	_____|___________________|___________________|
	word |        DAD        |        SON        |
	  1  |      polygon      |    arc or vector  | 3
	_____|___________________|___________________|
	word |       type        |       reloc       |
	  2  |                   |      33 0003      |
	_____|___________________|___________________|
	word |        row        |        col        |
	  3  |      0000.00      |      0000.00      | 0
	_____|___________________|___________________|
	word |       cntrst      |       ncnt        |
	  4  |                   |      length       | 0
	_____|___________________|___________________|
	word |                                       |
	  5  |                zdepth                 | 0
	_____|_______________________________________|
	word |                   |                   |
	  6  |       NTIME   time line   PTIME       | 3
	_____|___________________|___________________|

	The format of vectors  and arcs is identical. Inside  CRE the
term "vector"  has the connotation of being  strictly a horizontal or
vertical generated  by  the contouring  step;  whereas  an arc  is  a
vector  generated   by  the  smoothing  step.   Vectors  contain  the
fundamental  geometric datum of an  image locus.   The image locus is
stored in the halfword datums  named row and col,  which  contain the
row and column  of a point in units 1/64 of a  pixel. (A "pixel" is a
"picture element").  Vectors and  arcs also  contain the  photometric
datum of edge contrast.

	Vectors always  belong to a  polygon node,  a pointer to  the
polygon  of each vector is  stored in the link  named DAD; as members
of a polygon the vectors form a loop which is always connected  so that
each vertex  has a  neighboring vertex  in the  clockwise and  in the
counter  clockwise  directions about  the polygon's  perimeter; these
perimeter pointers  are stored  in the  link positions  named CW  and
CCW. Vectors never cross, arcs cross on occassions but can be fixed.

	The ncnt datum of arcs and vectors    contains  their length.
The  time line links, NTIME and PTIME,  may point  to a corresponding
arc or  vector in the  image previous  or subsequent  to the  current
image.  (The  zdepth  datum  contains a  positive  number  indicating
distance  from the  camera's image  plane; the zdepth  computation is
not properly implemented as of May 1973).
3. POLYGON NODE FORMAT.

	_____________________________________________ 
	word |        CW         |        CCW        |
	  0  |             polygon ring              | 3
	_____|___________________|___________________|
	word |        DAD        |        SON        |
	  1  |       level       |     1st vector    | 3
	_____|___________________|___________________|
	word |       type        |       reloc       |
	  2  |        10         |      33 3233      |
	_____|___________________|___________________|
	word |       ENDO        |        EXO        |
	  3  |1st polygon within |polygon surround me| 3
	_____|___________________|___________________|
	word |       ALT         |       ncnt        |
	  4  | shape {or 1st arc}|  number of sides  | 2
	_____|___________________|___________________|
	word |       NGON        |       PGON        |
	  5  | nest bro polygon  | nest sis polygon  | 3
	_____|___________________|___________________|
	word |                   |                   |
	  6  |       NTIME   time line   PTIME       | 3
	_____|___________________|___________________|

	Every polygon belongs to a level pointed  at by the DAD link;
the ring  of polygons of a  level is formed in the  CW and CCW links;
the son of a  polygon is its first vector  (or arc after the  polygon
has been  smoothed) and  that first  vector has  the upper  left most
locus of any vector of the polygon.

	The  ENDO,   EXO,  NGON,   PGON are  used to  form the nested
polygon tree.   Every polygon  has non-NIL NGON  and PGON links;  the
trivial  case being that  the polygon  points at itself  twice. Every
polygon except one,  the outer  border polygon,   has  a non-NIL  EXO
link.  Every polygon that surrounds one or  more other polygons has a
non-NIL ENDO link.

	The ALT link  position of a polygon temporarily points to the
first arc  of a  polygon during  smoothing when  a  polygon has  both
vectors and arcs. The final contents of  the ALT link is a pointer to
the  shape node of the  polygon. The ncnt  datum indicates the number
of sides of the polygon.
	
	The time  line  of polygons  runs thru  the  NTIME and  PTIME
links which point either  to a nearly exact match of a polygon; or to
a fusion  polygon of  a two  for  one match;  or to  one of  the  two
fission parts  of a  one for  two match; (to  find the  other fission
part, the time links of the vectors must be scanned).
4. SHAPE NODE FORMAT.

	_____________________________________________ 
	word |        CW         |        CCW        |
	  0  |          fusion shape ring            | 3
	_____|___________________|___________________|
	word |       perm        |       area        |
	  1  |                   |                   | 0
	_____|___________________|___________________|
	word |       type        |       reloc       |
	  2  |        10         |      30 0030      |
	_____|___________________|___________________|
	word |        row        |        col        |
	  3  |      0000.00      |      0000.00      | 0
	_____|___________________|___________________|
	word |        pxy        |        mzz        |
	  4  |product of inertia |   Z-axis moment   | 0
	_____|___________________|___________________|
	word |       NGON        |       PGON        |
	  5  |   fusion polygon  |    main polygon   | 3
	_____|___________________|___________________|
	word |        mxx        |        myy        |
	  6  |   X-axis moment   |   Y-axis moment   | 0
	_____|___________________|___________________|


	The shape  node contains the  data necessary  for normalizing
two  polygons so that  only their  shapes remain. In  particular, the
row and col of  a shape node  is the center of  mass of the  polygon;
area is  the area;  perm is  the length of  perimeter; and  mxx, myy,
mzz,  pxy is  the polygons inertia  tensor (from  which the principle
angle of  orientation can be  computed). When  given two shapes,  the
centers of mass may be  alligned; the principle angles may be allign;
and the areas (or permeter) of the two may be normalized.

	There are  two  kinds of  shapes: polygon  shapes and  fusion
shapes. Polygon  shapes correspond to a single  polygon pointed at by
the PGON link.  The CW,  CCW and NGON  links of a  polygon shape  are
NIL. Fusion  shapes are  temporary nodes  belonging to  a level  as a
ring  thru CW and CCW.  Fusion shapes correspond  to the summation of
two unmated  polygons  which are  pointed  to by  the NGON  and  PGON
links. The expressions relating to  the inertia tensor  and to fusion
summation are given in the section on polygon comparing.

	The datums named perm,  area, pxy,  mxx, myy, mzz contain the
left  half of a PDP-10  floating number.  (Technical  note: half of a
floating number has  9 bits of  precision and  should be expanded  to
full word by  using the (mirabile dictu !) HLLE  instruction in order
to  avoid an illegal floating zero  caused by truncating numbers like
-1023.0; in CRE, only the product of inertia will ever be negative).
5. LEVEL NODE FORMAT.

	_____________________________________________ 
	word |        CW         |        CCW        |
	  0  |              level ring               | 3
	_____|___________________|___________________|
	word |        DAD        |        SON        |
	  1  |       image       |     1st polygon   | 3
	_____|___________________|___________________|
	word |       type        |       reloc       |
	  2  |                   |      33 0200      |
	_____|___________________|___________________|
	word |                   |                   |
	  3  |       ---  ⊂α↓↓↓↓αβq↓↓α↓↓↓↓ji5↓↓α↓↓↓↓αβq↓@hP$``A@cp`A@```A@```A@```A@cp`A@```A@```A@```A@cp4PK←?K"βq↓↓α↓↓↓αbQ↓↓α↓↓↓↓αβq↓↓α↓↓↓βv≠;Q↓α↓↓↓↓αβp4(J↓↓Q↓πa↓!G∨!β≠W≡K?9β≡CπC∃OcS#K/≠#?3"β∂WQεc↔[↔ga↓H4PH```ACp``A@```A@```A@```ACp``A@```A@```A@```ACp4(O;?K⊃πa↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓πa↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓π`4(%α↓U↓βb↓↓↓↓α↓↓55j↓↓↓↓α↓↓↓βb↓↓↓↓α↓↓55j↓↓↓↓α↓↓↓βb↓@4(I@```G````A@```A@```A@```G````A@```A@```A@```G`4('>{K⊃βb↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓βb↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓β`h(%↓β1↓βqα↓↓↓↓α↓555α↓↓↓↓α↓↓βqα↓↓↓↓α↓555α↓↓↓↓α↓↓βqβ4($A@``ca@```A@```A@```A@``ca@```A@```A@```A@``c`h(4(L+[↔KJβ3↔[.aβ↔f{;∨Mπ#=↓β∞qβ'7∞;∃βC}K;S↔"βS=β↔I↓βSF)α∩ε"β3';[X4+SF)↓βKNs≥β?2β3↔[.cMβ?2↓βπ9εK7π∨*β'M↓ε3?K7.!β'9π##∃α≥9↓βπv!α∞∞:β3';←→l4+&C∃βO}qβ?→αβ¬β3/3↔1βO→β'S~↓β≠'↔≠QβC}cg∨?rβπ;⊃αβS#π"β≠'K∨!βC?gK∨?9αβ'L4W##∃β/βC↔Iεc↔≠Qεk?OQπβ?3g>{9β?2βS#∃εc↔[↔bp4(4PJS#∃εs∂;Qε#πSWj↓β?→ε	β3↔6+1β∂}sSπ'w→β'S~↓βS#⊗+O#?f!β∂W"β[π3.)04+>C'∂!αβ'Mβ∞q↓β'w#↔∨↔∩↓β↔';↔↔9αiE↓β∞s⊃↓Y~q↓↓α&C∃↓↓k	β3↔6+1↓βO→βπ3>gL4V;↔;↔⊗S↔⊃bβπ;⊃εKQβ∂}sSπ'w→β¬β≡K;∨3*βC?3N;?9β>KS!β6{WI↓π≠'∪↔~q↓αSF)↓5DhS3↔[.a∨Mβε{3g∨}qβ'Mε≠π33.!↓βSF)β?⊗#↔Iβε{3g∨}qmβSF)β≠'∨#'?9ε∪↔';:βS#π h+↔[/∪eβC}K;Q↓ε∪↔g?v!↓βSF)↓β↔&;↔M↓ε{→↓β&C∃↓β&+3↔[≡K?9↓πβ'∂S/∪∃↓βFM↓β∞p4+'w#↔;OO#eβ[∞cW∃β}1↓5Ibβ←#'≡Aβ'Mε∪3π∂↑+IβSF9βf∂-8hP4(&&C∃αεe!β3'vYβ?→ε	β3↔6+1β∂}sSπ'w→↓β¬π#↔7C␈∪πKeπβ?';&+IβSzβS#π h+3↔6+1∨Mπ∪';≥ε{→β≠/≠'?9π≠#πC/→β∪W⊗K;≥βε{3g∨}qβ∂?oβπK∃π#'7∃εkπS'v984(1Y9∧J6ε≡*α:>∩*α~>Jl
Q84Ph($`A@```A@```A@```A@```A@```A@```A@```A@```A@`ahP'←?⊗!βq↓α↓↓↓↓αα∞]↓α↓↓↓↓α↓βq↓α↓↓↓↓αα∞∞]α↓↓↓↓α↓βp4PI↓↓Aαβq↓↓α↓↓↓↓α↓↓↓↓αβ'7π>)βK'v9↓↓↓α↓↓↓↓α↓↓↓↓αβq↓LhP$``A@cp`A@```A@```A@```A@cp`A@```A@```A@```A@cp4PK←?K"βq↓↓α↓↓↓↓∧"ε⊃↓α↓↓↓↓αβq↓↓α↓↓↓↓¬~>9↓α↓↓↓↓αβp4(J↓↓E↓πa↓↓↓α↓↓↓β6K35↓α↓↓↓↓πa↓↓↓α↓GOQεc↔[↔b↓↓↓↓πa↓L4PH```ACp``A@```A@```A@```ACp``A@```A@```A@```ACp4(O;?K⊃πa↓↓↓α↓↓βSOβ∃↓↓α↓↓↓↓πa↓↓↓α↓↓βK.c?
↓α↓↓↓↓π`4(%α↓I↓βb↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓βb↓↓↓↓α↓MM↓β↓AA↓α↓↓↓β`h($`A@`cpA@```A@```A@```A@`cpA@```A@```A@```A@`cphP'←?⊗!βq↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓βq↓α↓↓↓↓α↓↓↓↓α↓↓↓↓α↓βp4PI↓↓Mαβq↓↓α↓↓↓↓ji5↓↓α↓↓↓↓αβq↓↓α↓↓↓↓ji5↓↓α↓↓↓↓αβq↓@hP$``A@cp`A@```A@```A@```A@cp`A@```A@```A@```A@cp4PK←?K"βq↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓αβq↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓αβp4(J↓↓Q↓πa↓↓↓α↓↓↓5ji↓↓↓α↓↓↓↓πa↓↓↓α↓↓↓5ji↓↓↓α↓↓↓↓πa↓@4PH```ACp``A@```A@```A@```ACp``A@```A@```A@```ACp4(O;?K⊃πa↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓πa↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓π`4(%α↓U↓βb↓↓↓↓α↓↓55j↓↓↓↓α↓↓↓βb↓↓↓↓α↓↓55j↓↓↓↓α↓↓↓βb↓@4(I@```G````A@```A@```A@```G````A@```A@```A@```G`4('>{K⊃βb↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓βb↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓β`h(%↓β1↓βqα↓↓↓↓α↓555α↓↓↓↓α↓↓βqα↓↓↓↓α↓555α↓↓↓↓α↓↓βqβ4($A@``ca@```A@```A@```A@``ca@```A@```A@```A@``c`h(4(hP&↔[/∪eβ'n∨∃β⊗+3?;?→βS=αβS#∃ε3'35πβ?';&+⊃βSzβe↓π##∃α$
⊃β3Ns-l4W##∃↓π∪';≥ε{→β'n∨↔Mε{→↓β&C∃β≠Nc5β'~↓β≠?⊗k↔⊃βNqβS#*α∞]↓ε;⊃α≤~]β3Ns/MlhSS#∃π≠?9β}1βπ9εK7π∨*↓β'MεKSMβ6KKOQεc↔[↔b↓βπ;"βS#π"β≠'K∨!β3↔6+1β'~↓βS#(h)5EεK;S↔w≠'Seε≠WQβf+[↔1ε{→βSF)β'7∞;∃84Ph(&πg##?W>Aβπ9αβπ≠≠⊗{;Qβ&y↓β∂}k7?9π≠↔;O*aβS#*↓β∂?.sS↔Iε≠3?∂←;'O∀hS∪'K.≠S'?r↓βπ␈+QβSF)β'7∞;∃βKNs≥β'~βC?OO#'[∃αβ?IβfS↔IεK9βSNk∃βπv!βS#(h+∂3}≠/←'≡)β∪'⊗+∂S'}qβ'Mεs↔∨π&K[∃↓ε{Iβ↔∂∪3'↔∩β'9β&K7∃9∧I↓βπ≡C'↔[.!βS#O_4+∂/∪'=↓ε∪eβ∂}sO'O&+;S3J↓βπ∪F+K↔'v9βS=αβS#∃εkπS#.kπS'≡1↓β≡{;[↔w#'?9ε{_4+≡{W;S/⊃β∂3}≠/←'≡)βπMπβ?O'&K[∃mε;⊃β
β∪πeε≠π7∃π;#↔9ε≠?W;&+I↓β≡c?∂/>KO∀4VK?Wv!β¬β⊗K;≥β}1βK↔∞aβS'n)β↔[.sSMβ>M↓β⊗+CK↔≡+;S↔"β'9β&C∃βO∞k∃β7∞s;↔HhSπMβ≡{W;S/⊃β∂3}≠/←'≡)βπK␈+;⊃β
βC?3N;?;πbβK';:β?→β.#∨↔Mph(4(L31β&C∃β↔oβSeβ∨βπ∂∃εK9βSF)β'7∞;∃β;}#∃β'~βK↔O/∪[↔⊃ε3?Iβ≡7↔Kλh+OC.≠'≠'≡S'?rβ∪πS
p4(1]9∧2&25∧r>∩∃∧2>J6
!84(hP$``A@```A@```A@```A@```A@```A@```A@```A@```A@a4PK←?K"βq↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓αβq↓↓α↓↓↓↓∧~∞]↓α↓↓↓↓αβp4(J↓↓A↓πa↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓πa↓↓↓α↓GOQε+7CSJ↓↓↓↓πa↓D4PH```ACp``A@```A@```A@```ACp``A@```A@```A@```ACp4(O;?K⊃πa↓↓↓α↓↓↓α$
⊃↓↓α↓↓↓↓πa↓↓↓α↓↓↓α≤z9↓↓α↓↓↓↓π`4(%α↓E↓βb↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓βb↓↓↓↓βOQβNkπ∨∃α↓↓↓βb↓L4(I@```G````A@```A@```A@```G````A@```A@```A@```G`4('>{K⊃βb↓↓↓↓α↓βSgε)↓↓↓α↓↓↓βb↓↓↓↓α↓βK↔f{
↓↓α↓↓↓β`h(%↓β⊃↓βqα↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓βqα↓↓↓↓β→M↓Aβ↓A↓↓α↓↓βphP$``A@cp`A@```A@```A@```A@cp`A@```A@```A@```A@cp4PK←?K"βq↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓αβq↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓αβp4(J↓↓M↓πa↓↓↓α↓↓↓5ji↓↓↓α↓↓↓↓πa↓↓↓α↓↓↓5ji↓↓↓α↓↓↓↓πa↓@4PH```ACp``A@```A@```A@```ACp``A@```A@```A@```ACp4(O;?K⊃πa↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓πa↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓↓π`4(%α↓Q↓βb↓↓↓↓α↓↓55j↓↓↓↓α↓↓↓βb↓↓↓↓α↓↓55j↓↓↓↓α↓↓↓βb↓@4(I@```G````A@```A@```A@```G````A@```A@```A@```G`4('>{K⊃βb↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓βb↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓↓β`h(%↓β)↓βqα↓↓↓↓α↓555α↓↓↓↓α↓↓βqα↓↓↓↓α↓555α↓↓↓↓α↓↓βqβ4($A@``ca@```A@```A@```A@``ca@```A@```A@```A@``c`h('←␈∪⊃βqα↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓βqα↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓βphP%↓↓2↓βq↓α↓↓↓↓αi55↓α↓↓↓↓α↓βq↓α↓↓↓↓αi55↓α↓↓↓↓α↓βq↓h($`A@`cpA@```A@```A@```A@`cpA@```A@```A@```A@`cphP4(&&C∃β≠Nc5↓βv{∪∃↓εKMβWvKGW∃Z↓β'QεKM↓β&C∃↓β6KKOQode  in a  CRE
output file;  the SON of film  is its first image; the  DAD of a film
is NIL;  the CCW  of a  film  is a  pointer to  the 1st  empty  node;
however,  because  the  nodes  are  compacted  for  output  and  then
relocated  with  respect  to  the film  node;  the  final  empty node
pointer indicates the number of words of data in the CRE file.
8. EMPTY NODE FORMAT.

	_____________________________________________ 
	word |                   |        CCW        |
	  0  |       ---         |       avail       | 1
	_____|___________________|___________________|
	word |                   |                   |
	  1  |       ---         |       ---         | 0
	_____|___________________|___________________|
	word |       type        |       reloc       |
	  2  |                   |      00 0000      |
	_____|___________________|___________________|
	word |                   |                   |
	  3  |       ---         |       ---         | 0
	_____|___________________|___________________|
	word |                   |                   |
	  4  |       ---         |       ---         | 0
	_____|___________________|___________________|
	word |                   |                   |
	  5  |       ---         |       ---         | 0
	_____|___________________|___________________|
	word |                   |                   |
	  6  |       ---         |       ---         | 0
	_____|___________________|___________________|


	The  list of  empty  nodes  is  maintained in  the  CCW  link
postion; the last  empty node contains a zero or NIL link. At present
all the other words of an empty node are zero.


FIGURE SHOWING RASTER STRUCTURE._____________________________________

				↑
				↑
			       NORTH
	 grid point R,C			 R,C+1
			o____HSEG______o
			|
			|
	         	|
       ←←←WEST        VSEG   PIXEL(R,C)		EAST→→→
			|
			|
			|
		        o     SOUTH
 		  R+1,C		↓
				↓
_____________________________________________________________________
DATA STRUCTURE: IMAGE ARRAYS.

	There are five arrays in CRE:  TVBUF, Television Buffer; PAC,
Picture  Accumulator;  VSEG,   vertical segments;  HSEG,   horizontal
segments; and SKY, background sky blue array. The dimensions are:

	FIVE ARRAYS.
		1. TVBUF - 216 rows, 288 columns of  6 bit bytes.
		2. PAC   - 216 rows, 288 columns of  1 bit bytes.
		3. VSEG  - 216 rows, 289 columns of  1 bit bytes.
		4. HSEG  - 217 rows, 288 columns of  1 bit bytes.
		5. SKY   - 216 rows, 289 columns of 18 bit bytes.

	Inside CRE,  the video image  size was fixed  at 216  rows of
288  columns of 6 bits  per pixel.   My original idea was  to write a
vision operator that would be applied on a small fixed  sized window;
so I have  had windows 2 by 2;  2 by 3; 4  by 9; 32 by 36;  72 by 96;
and  216  by 288.    That is  216=2*2*2*3*3*3  and 288=2*2*2*2*2*3*3.
Having a fixed  window size avoids a  morass of word packing,   array
allocation  and window splicing.   Having  a window  size constructed
out of powers  of 2 and  3 simplifies what  word packing is  required
and allows me to do area and space computations in my head.

	The image arrays  of CRE are  of course two  dimensional with
the coordinates  in row and columns. Row  number increases going down
image, in the  negative Y axis  direction, which  is also called  the
direction south.   Column numbers increase going right  on the image,
in the  positive X axis direction, which is also called the direction
east.   Video  picture  elements,   or  "pixels"  are thought  of  as
expressing  the intensity of  a square  cell; the cells  are numbered
from 0 to 215 rows,   0 to 287 columns; the  number of a cell is  the
grid locus of its upper left (northwest)  corner; the center locus of
a  cell is at (row+1/5,col+1/2).  A pixel cell is  surrounded by four
segments; the horizontal segments  are numbered 0  to 216 rows, 0  to
287 columns;  the number  of an HSEG  is the grid  locus of  its left
(west)  end point. The vertical segments are  numbered 0 to 215 rows,
0 to  288 columns; the  number of  a VSEG  is the grid  locus of  its
upper  (north) end  point.  These conventions  are  suggested in  the
diagram at the bottom of page 19.